package com.igeek.array;

import com.igeek.bean.User;

import java.util.Arrays;
import java.util.Scanner;

/**
 * 数组：
 *      存放相同类型的变量的集合
 *      表现为内存中的连续区域
 *      长度不可变的
 *
 */
public class Demo01 {

    public static void main(String[] args) {

        /*
            数组创建的第一种形式：
                数据类型(基本数据类型 或者是 引用数据类型) [] 数组名 = new 数据类型[指定长度]

            数组创建的第二种形式：
                数据类型(基本数据类型 或者是 引用数据类型) [] 数组名 = {}
                不可以分两步写

             数组创建的第三种形式：
                数据类型(基本数据类型 或者是 引用数据类型) [] 数组名 = new 数据类型[]{};

         */
        int[] nums = new int[20];
        String[] names = new String[20];

        User users[] = new User[10];

        int[] scores  = {10,20,30,40,50,60};

        String[] strs = null;
        strs =new String[]{"java","html","js"};


        /*
            数组的赋值：
                数组名[索引值] = 值;
         */
        nums[0] = 10;
        names[0] = "java";

        User user1 = new User();
        users[0] = user1;

        /*
            给数组赋值时，注意索引值不能超过数组的长度-1
            否则抛异常：ArrayIndexOutOfBoundsException
         */
        users[1] = null;

        /*
            获取数组数量：length属性
         */
        int len = users.length;

//        saveScore();
    }


    /**
     * 通过键盘输入为班里每个同学设定成绩，使用数组该如何实现？
     */
    public static void saveScore(){

        System.out.println("请输入学生的人数");

        Scanner scanner = new Scanner(System.in);

        int len = scanner.nextInt();

        double[] scores = new double[len];

        for(int i = 0;i<len;i++){
            System.out.println("请开始输入第"+(i+1)+"个人的成绩：");
            int score = scanner.nextInt();

            scores[i] = score;
        }

        /*
            Arrays 有关数组操作的工具类
         */
        System.out.println(scores);
        System.out.println(Arrays.toString(scores));

    }
}
